package API.RegexDome;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * ClassName:RegexText010
 * Package:API.RegexDome
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/1-19:21
 * @Version:v1.0
 */
public class RegexText010 {
    /*
     * 需求：把下面文本的电话,邮箱,手机号,热线都爬出来
     *
     * 来黑马程序员学习java
     * 电话：18512516758,18512508907
     * 或者联系邮箱：boniu@itcast.cn
     * 座机电话：01036517895,010-98951256
     * 邮箱：bozai@itcast.cn
     * 热线电话：400-618-9090,400-618-4000,4006184000,4006189090
     *
     *
     * 手机号码的正则表达式：1[3-9]\d{9}
     * 邮箱的正则表达式：\w+@[\w&&[^_]]{2,6}(\.[a-zA-Z]{2,3}){1,2}
     * 座机号码的正则表达式：0\d{2,3}-?[1-9]\d{4,9}
     * 热线电话的正则表达式：400-?[1-9]\d{2}-?[1-9]\d{3}
     * */
    public static void main(String[] args) {
        String str = " 来黑马程序员学习java\n" +
                "      电话：18512516758,18512508907" +
                "      或者联系邮箱：boniu@itcast.cn," +
                "      座机电话：01036517895,010-98951256," +
                "      邮箱：bozai@itcast.cn," +
                "      热线电话：400-618-9090,400-618-4000,4006184000,4";

        String regex="(1[3-9]\\d{9})|" +
                "(\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2})|" +
                "(0\\d{2,3}-?[1-9]\\d{4,9})|" +
                "(400-?[1-9]\\d{2}-?[1-9]\\d{3})";

        //获取正则表达式的对象
        Pattern pattern = Pattern.compile(regex);
        //获取文本匹配器的对象
        //利用m去读取s,会按照p的规则找里面的小串
        Matcher m = pattern.matcher(str);
        //利用循环获取每一个数据
        while (m.find()){
            String str1 = m.group();
            System.out.println(str1);
        }

    }
}
